//获得项目根目录
const basePath = process.cwd().replace(/\\/g, '/').replace('/api', '')
module.exports = {

	/*

	 框架配置
	 框架运行时的参数配置

	 [string] version 框架版本号
	 [string] uriPrefix 路由URI前缀，默认/api，尾部无需再加斜杠
	 [array] routers 路由件列表数组，r_xxx放于routers文件夹
	 [array] handles 处理件列表数组，h_xxx放于handles文件夹
	 [object] exports 开放的接口列表
	 [object] notSign 无需签名处理的接口
	 [string] logFile 日志文件地址
	 [boolean] apiStrict 接口是否开启严格模式，严格模式一个API周期内只能调用一次
	 [object] apiKeys API密钥
	 [object] apiExpires 指定所有API调用有效期（秒）
	 [object] sessionExpires 指定不同用户session生命周期（秒）
	 [string] pwdSalt 加密密码用的盐字符串
	 [string] alertUrl 服务器警报接收URL

	*/

	frame: {
		version: '1.0.8',
		uriPrefix: '',
		routers: ['user', 'store', 'order', 'push', 'sys'],
		handles: ['user', 'store', 'order', 'printer', 'sys'],
		noSign: {
			all: [],
			get: [
				'/store/:storeId([a-zA-Z0-9]{10})',
				'/store/:codeId([a-zA-Z0-9]{32})',
				'/store/:codeId([a-zA-Z0-9]{32})/tableNum',
				'/store/:storeId([a-zA-Z0-9]{10})/comment',
				'/test/check/printService',
				'/sys/make/gtCode/:count'
			],
			post: [
				'/user/login',
				'/store/:storeId([a-zA-Z0-9]{10})/printer',
				'/push/printed',
				'/push/printerStatus',
				'/push/wxPay'
			],
			delete: [],
			put: []
		},
		logFile: `${process.cwd()}/gtapi.log`,
		apiStrict: false,
		apiKeys: {},
		apiExpires: {
			all: 3600
		},
		sessionExpires: {
			all: 86400,
			student: 86400,
			teacher: 604800
		},
		pwdSalt: 'UbRn1otKlduqvPyPk7JAN765ipZV1OiY',
		alertUrl: 'https://sc.ftqq.com/SCU12695Tb9f582edc16d3b52cc7657b34d522fa359c9e1a74b452.send'
	},
	
	/*

	 服务器配置
	 建议使用nginx进行ssl代理、反向代理、负载均衡
	 
	 [number] port 服务器默认监听的端口，通过pm2管理器可以指定端口启动pm2 start index.js --name "服务名" -- p 端口号
	 [string] staticPath 服务器静态资源所在路径
	 [string] tmpPath 服务器上传临时文件所在路径

	*/

	server: {
		port: 2333,
		basePath,
		staticPath: `${basePath}/publics`,
		tmpPath: `${basePath}/publics/tmp`,
		gtCodePath: `${basePath}/publics/gtCode`
	},
	
	/*

	 Redis数据库配置
	 数据库配置中默认绑定到127.0.0.1，可以不采取认证
	 
	 [array] dbs 需要连接的数据库名称与index映射数组，dbs[0]代表redis的0号数据库别称为default
	 [string] host 数据库地址，默认127.0.0.1
	 [number] port 数据库端口，默认6379
	 [string] pwd 认证的密码，如果不为空字符串将开启认证模式

	*/

	redis: {
		dbs: ['session', 'apiNonce', 'accessToken', 'print', 'gtCode'],
		host: '127.0.0.1',
		port: 7878,
		pwd: 'cwb456289788'
	},

	/*
	 
	 MySQL数据库配置
	 数据库配置中默认绑定到127.0.0.1
	
	 [array] dbs 需要连接的数据库名称数组
	 [string] host 数据库地址，默认127.0.0.1
	 [number] port 数据库端口，默认3306
	 [string] user 数据库用户，勿用root用户
	 [string] pwd 数据库密码
	
	*/

	mysql: {
		dbPrefix: 'gt',
		dbs: ['gt_common', 'gt_store', 'gt_user', 'gt_order', 'gt_comment', 'gt_coupon', 'gt_code'],
	  	host: '127.0.0.1',
	  	port: 3306,
		user: 'root',
		pwd: 'cwb456289788',
		charset: 'utf8mb4_bin'
	},

	/*
	
	 文件上传过滤器配置
	 
	 [array] names 允许上传的文件name属性数组
	 [array] mimes 允许上传的文件mime类型数组
	 [number] maxSize 允许上传的文件大小上限
	
	*/

	fileFilter: {
		names: ['image'],
		mime: ['image/jpeg', 'image/png'],
		maxSize: 2048000
	},

	/*
	
	 微信小程序配置
	 
	 [object] name 该小程序的配置
	 
	*/

	miniApp: {
		gtClient: {
			appId: 'wx65a60f9717ac56d5',
			appSecret: '8a6316bd15dc50250c4ae7bbd0c4387f',
			grantType: 'authorization_code',
			//小程序支付商户号
			merchantId: '1486543372',
			//服务商APPID
			serviceAppId: 'wx135cf3e51264f5e5',
			//服务商支付商户号
			serviceMerchantId: '1486459322',
			//服务商支付API密钥
			servicePayKey: '0e77391fc1eb94b7f085917999e5881f',
			//支付成功后通知的地址
			payNotifyUrl: 'https://api.yi-p.com/push/wxPay',
			//统一下单后的未支付订单有效期（秒）
			prePayExpire: 86400,
			msgTemplate: {
				'orderSuccess': 'Ub2qW_beGfK16yO1rM7Wv_2o82ZuMqitRmOqAcbyv6Y',
				'orderPayed': 'eyxZWgsw7DhqJlgl8Y1IMNhzZaS4MTpIAKGgf-B88yY',
				'orderTaked': 'TwAe6S81UI5dNq64oUm5GJ1eJWeWOCI-LHQ48ilKwas',
				'orderRejected': 'wdp4jTTRY4CdMSORjuRq66HOqbsgp5HQONdpZH9NukI'
			}
		}
	},

	/*
	
	 易联云打印机服务配置
	 
	 [string] clientId 自有应用ID
	 [string] clientSecret 自有应用密钥
	 [number] scanInterval 扫描新打印任务的时间间隔
	 [number] everyTimePrintCount 每次最多打印的数量
	 [number] taskExpire 打印任务的过期期限

	*/

	printer: {
		clientId: '1057780676',
		clientSecret: '8c0e59d110f945bcf38fd120749a6982',
		scanInterval: 5,
		everyTimePrintCount: 10,
		taskExpire: 86400
	},

	/*

	 粿团小程序码生成配置

	 [number] makeMaxCount 每个生成服务生成的最大数量
	 [number] makeInterval 每一次生成之间的时间间隔
	 [number] everyTimeMakeCount 每一次生成的最大数量
	 [number] makeTaskExpire 生成任务的过期期限
	 [boolean] tableCountFull 表01-99号表是否已经存在
	 [string] page 小程序码指向的地址
	 [number] width 小程序码宽度
	 [boolean] 小程序码是否使用自动颜色线条
	 [object] 线条颜色对象

	*/

	gtCode: {
		makeMaxCount: 100,
		makeInterval: 5,
		everyTimeMakeCount: 10,
		makeTaskExpire: 86400,
		tableCountFull: false,
		page: 'pages/store/store',
		width: 430,
		auto_color: false,
		line_color: {"r":"0","g":"0","b":"0"}
	}

}